//
// Created by denglibin on 2021/4/8.
//

#ifndef OPENGL_MINGW_STRUCTS_H
#define OPENGL_MINGW_STRUCTS_H
#include "glm.hpp"
#include <string>
#include <assimp/types.h>
//C++结构体有一个很棒的特性，它们的内存布局是连续的(Sequential)。也就是说，如果我们将结构体作为一个数据数组使用，
//那么它将会以顺序排列结构体的变量，这将会直接转换为我们在数组缓冲中所需要的float（实际上是字节）数组
/**
 * 顶点结构体
 */
struct Vertex{
    glm::vec3 Position; //顶点位置
    glm::vec3 Normal; //法向量
    glm::vec2 TexCoords; //纹理坐标向量
};
/**
 * 纹理数据结构体
 */
struct Texture {
    unsigned int id; //纹理对象的id
    std::string type; // 类型，比如是漫反射贴图或者是镜面光贴图（漫反射:texture_diffuse，镜面反射：texture_specular）
    aiString path;  // 我们储存纹理的路径用于与其它纹理进行比较
};
#endif //OPENGL_MINGW_STRUCTS_H
